//package com.example.demo.netty;
//
//import io.netty.bootstrap.Bootstrap;
//import io.netty.buffer.ByteBuf;
//import io.netty.buffer.ByteBufAllocator;
//import io.netty.channel.*;
//import io.netty.channel.nio.NioEventLoopGroup;
//import io.netty.channel.socket.SocketChannel;
//import io.netty.channel.socket.nio.NioSocketChannel;
//import io.netty.handler.logging.LogLevel;
//import io.netty.handler.logging.LoggingHandler;
//
//import java.nio.charset.StandardCharsets;
//import java.util.Random;
//
//public class NettyClientTest2 {
//    public static void main(String[] args) {
//        NioEventLoopGroup worker=new NioEventLoopGroup();
//        try {
//            Bootstrap bootstrap = new Bootstrap()
//                    .channel(NioSocketChannel.class)
//                    .group(worker)
//                    .handler(new ChannelInitializer<SocketChannel>() {
//                        @Override
//                        protected void initChannel(SocketChannel socketChannel) throws Exception {
//                            socketChannel.pipeline().addLast(new LoggingHandler(LogLevel.DEBUG));
//                            socketChannel.pipeline().addLast(new ChannelInboundHandlerAdapter() {
//                                @Override
//                                public void channelActive(ChannelHandlerContext ctx) throws Exception {
//                                    char c='0';
//                                    Random r=new Random();
//                                    ByteBuf byteBuf= ctx.alloc().buffer();
//                                    for (int i=0;i<10;i++){
//                                        StringBuilder stringBuilder = makeString(c, r.nextInt(256));
//                                        stringBuilder.append("\n");
//                                        c++;
//                                        byteBuf.writeBytes(stringBuilder.toString().getBytes(StandardCharsets.UTF_8));
//                                    }
//                                    ctx.writeAndFlush(byteBuf);
//                                }
//                            });
//                        }
//                    });
//            ChannelFuture future = bootstrap.connect("localhost", 8082).sync();
//            future.channel().closeFuture().sync();
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            worker.shutdownGracefully();
//        }
//    }
//    private static StringBuilder makeString(char c,int len){
//        StringBuilder stringBuilder=new StringBuilder();
//        for (int i = 0; i < len; i++) {
//            stringBuilder.append(c);
//        }
//        return stringBuilder;
//    }
//}
